package com.todo.strategy.online.application.frontend.service;

import com.todo.common.common.entity.response.BizResponse;
import com.todo.strategy.online.iface.request.*;
import com.todo.strategy.online.iface.response.PlanRelationDetailVO;
import com.todo.strategy.online.iface.response.SamplePlanSetVO;

/**
 * (PlanRelation)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 00:19:47
 */
public interface PlanRelationAggService {

    /**
     * 插入清单计划关联详情
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> insertPlanRelation(InsertPlanRelationParam param);

    /**
     * 复制保存清单计划关联详情
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> duplicatePlanRelation(DuplicatePlanRelationParam param);

    /**
     * 复制保存清单计划
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> duplicatePlanSet(DuplicatePlanSetParam param);

    /**
     * 更新清单计划关联详情
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> updatePlanRelation(UpdatePlanRelationParam param);

    /**
     * 删除清单计划关联详情
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> removePlanRelation(RemovePlanRelationParam param);

    /**
     * 构造示例计划清单信息
     *
     * @param param
     * @return
     */
    BizResponse<SamplePlanSetVO> buildSamplePlanSetInfo(SamplePlanSetInfoParam param);


    /**
     * 根据清单计划查询详情列表
     *
     * @param param
     * @return
     */
    BizResponse<PlanRelationDetailVO> queryPlanRelationByPlanId(QueryPlanRelationByPlanIdParam param);

}
